package com.laijiale.result;

import lombok.Data;

import java.io.Serializable;

/**
 * @author laijiale
 * @date 2024年12月22日 10:14
 */
@Data
public class Result<T> implements Serializable {
        private Integer code;
        private String message;
        private T data;
        /** 创建Result类，默认返回成功状态码和响应描述，无响应数据 */
        public Result(){
            this(ResultCode.SUCCESS.getCODE(),ResultCode.SUCCESS.getMESSAGE(),null);
        }
      /** 创建Result类，默认返回成功状态码和响应描述，手动传递响应数据
        * @param data 响应数据**/
        public Result(T data){
            this(ResultCode.SUCCESS.getCODE(),ResultCode.SUCCESS.getMESSAGE(),data);
        }
        /**创建Result类，手动传递响应状态枚举实例，默认响应数据为nu11
     * @param resultCode 响应状态枚举实例**/
        public Result(ResultCode resultCode){
            this(resultCode.getCODE(),resultCode.getMESSAGE(),null);
        }
    /**
     *创建Result类，手动传递响应状态枚举实例和响应数据
     *
     * @param resultCode 响应状态枚举实例
     * @param data
    响应数据
     */
        public Result(ResultCode resultCode,T data){
            this(resultCode.getCODE(),resultCode.getMESSAGE(),data);
        }
    /**
     * 创建Result类，手动传递响应代码，响应描述和响应数据
     * @param code
    响应代码
     * @param message 响应描述
     * @param data
    响应数据
     */
        public Result(Integer code,String message,T data){
            this.code=code;
            this.message=message;
            this.data=data;
        }
    }
